package probandoTitiritero;

import vista.VistaAvionCivil;
import vista.VistaFondo1;
import vista.VistaHelicoptero;
import ar.uba.fi.algo3.titiritero.ControladorJuego;
import juego.AvionCivil;
import juego.Helicoptero;

public class Programa {
	
	public static void main(String[] args) {

        /*
         * Primero instancio mi modelo: un avionCivil y un helicoptero
         */
              
        Fondo unFondo = new Fondo(200,200);
		AvionCivil unAvionCivil = new AvionCivil(0,100);
		Helicoptero unHelicoptero = new Helicoptero (50,100);
        
        
        /*
         * Luego instancio los objetos del framework: una ventana y el controlador
         */    
        
        ControladorJuego controlador = new ControladorJuego(false);
        
        VentanaPrincipal ventana = new VentanaPrincipal(controlador);
        controlador.setSuperficieDeDibujo(ventana.getSuperficieDeDibujo());

        ventana.setVisible(true);
        
        
        /*
         * Instancio un cuadrado para que actue como vista de la mesa
         */
        VistaFondo1 vistaFondo = new VistaFondo1();
        vistaFondo.setPosicionable(unFondo);
        
        /*
         * Instancio una imagen para que actue como vista de los moviles
         */
        VistaAvionCivil vistaAvionCivil = new VistaAvionCivil();
        vistaAvionCivil.setPosicionable(unAvionCivil);
        
        VistaHelicoptero vistaHelicoptero = new VistaHelicoptero();
        vistaHelicoptero.setPosicionable(unHelicoptero);

        
        /*
         * agrego los moviles a la lista de objetos vivos del controlador
         * para que este le de vida dentro del gameloop
         */
        controlador.agregarObjetoVivo(unAvionCivil);
        controlador.agregarObjetoVivo(unHelicoptero);
        
        /*
         * Agrego los objetos que actuan como vista a la lista de dibujables del controlador
         * para que sean repintados al final de cada gameloop
         */
        
        controlador.agregarDibujable(vistaFondo);
        controlador.agregarDibujable(vistaAvionCivil);
        controlador.agregarDibujable(vistaHelicoptero); 
                
        controlador.agregarMouseClickObservador(vistaFondo);
        
        /*
         * finalmente establezco el intervalo de sleep dentro del gameloop
         * y comienzo a ejecutar
         */
        controlador.setIntervaloSimulacion(100);
        controlador.comenzarJuego(100);
        
	}

}








